read命令

read命令被用来从标准输入读取单行数据,这个命令可以用来读取键盘输入,当使用重定向以及默认选项的情况下,可以读取文件中的一行数据,此时read会将换行符视为行尾,但是可以使用-d选项更改。

语法

read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...] [name2 ...]

参数

示例

读取终端的输入,循环读入一直持续到按Ctrl + DEOF为止,由于指定变量名text,因此整行文本都存储在变量text中,每当输入一行后按回车时,将会把输入的内容输出。

while read text
    do echo "$text"
done

读取终端的输入,指定一个输入的超时时间。

if read -t 3 -p "Text: " text
then
    echo "Text: $text"
else
    echo -e "\nTimeout"
fi

按行读取文件中的内容。

cat test.txt | while read line
do
   echo "$line"
done

参考

https://www.computerhope.com/unix/bash/read.htm
https://www.runoob.com/linux/linux-comm-read.html
https://linuxize.com/post/how-to-read-a-file-line-by-line-in-bash/